import Vue from 'vue'
export const state: any = Vue.observable({
  serviceList: [],
  // 全部数据 含删除
  allServiceObj: {},
  allSpareTypeObj: {}, // 以id为key的备件类型
  allSpareOutStockTypeObj: {}, // 以id为key的出库类型
  allSpareInStockTypeObj: {}, // 以id为key的入库类型
  allUnitObj: {}, // 以id为key的单位
  allHouseObj: {}, // 以id为key的仓库
  allCommodityCodeObj: {}, // 以id为key的备件品类
  getAllCommondity: true,
  // 不含删除数据
  spareTypeList: [], // 备件类型
  spareOutStockTypeList: [], // 出库类型
  spareInStockTypeList: [], // 入库类型
  unitList: [], // 单位
  houseList: [], // 仓库
  typeRequestDone: false, // 首次类型请求是否完成
  houseRequestDone: false // 首次仓库请求是否完成
})

const idIsKeyData = (arr: any, key: string) => {
  const idObj = {} // 以id为key的数据
  arr.map(item => {
    let realKey = ''
    if (key) {
      realKey = key
    } else {
      realKey = 'id'
    }
    idObj[item[realKey]] = JSON.parse(JSON.stringify(item))
  })
  return idObj
}

export const mutations = { // arr 保存的数据为数组 obj 保存的数据为对象
  setStateData (type: string, attributeName: string, data: any, key: string = '') {
    if (type === 'arr') {
      state[attributeName] = data
    } else {
      state[attributeName] = idIsKeyData(data, key)
    }
  },
  setRequestData (type: string, val: boolean) { // type：类型，house：仓库
    if (type === 'type') {
      state.typeRequestDone = val
    } else if (type === 'house') {
      state.houseRequestDone = val
    } else if (type === 'spare') {
      state.getAllCommondity = val
    }
  }
}
